package com.xiangxiao.rpan.storage.utils;

import com.xiangxiao.rpan.storage.dto.StorageSourceAllParamDTO;
import com.xiangxiao.rpan.storage.dto.StorageSourceDto;
import com.xiangxiao.rpan.storage.entity.StorageSource;
import com.xiangxiao.rpan.storage.service.AbstractBaseFileService;
import com.xiangxiao.rpan.storage.vo.StorageSourceVo;
import org.mapstruct.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/10/26 15:21
 */
@Component
@Mapper(componentModel = "spring")
public interface ConverUtils {

  /**
   * 将 SaveStorageSourceRequest 转换为 StorageSource
   *
   * @param storageSourceDto SaveStorageSourceRequest 实体
   * @return StorageSource 实体
   */
  StorageSource saveRequestToEntity(StorageSourceDto storageSourceDto);

  /**
   * 将 StorageSource 转换为 StorageSourceAllParamDTO
   *
   * @param  storageSource StorageSource 实体
   * @return StorageSourceAllParamDTO 实体
   */
  StorageSourceDto entityToDTO(StorageSource storageSource, StorageSourceAllParamDTO storageSourceAllParam);


  /**
   * 将 StorageSource 转换为 StorageSourceVo
   * @param   list
   *          StorageSource 列表
   * @return  StorageSourceVo 列表
   */
  List<StorageSourceVo> entityToResultList(List<StorageSource> list);
}
